package com.ys.comparatordemo;

/**
 * 描述:  根据 学生的 分数来进行比较
 * 降序排序
 *
 * @author CodeYang
 * @version 2020/12/18 20:33
 *  强制多继承 这样 自写接口 与 公共接口 共同存在  具体看使用什么 类在调用
 */
public class OrderByScoreDesc implements Comparator, java.util.Comparator {
    /**
     * 实现规则---具体化
     * 到实列对象
     * @param object1
     * @param object2
     * @return
     *     a = b  = 0
     *     a > b  = -1
     *     a < b  = 1
     *
     */
    @Override
    public int compare(Object object1, Object object2) {
        // 1向下转型
        if (object1 instanceof Student && object2 instanceof Student){
            Student stu1 = (Student) object1;
            Student stu2 = (Student) object2;
            double flag = stu1.getScore() - stu2.getScore();
            // 降序排序
            return flag == 0 ? 0 : flag > 0 ? -1 : 1 ;
        }
        // 执行到此处，证明obj1或obj2不是Student类型的实例
        throw new IllegalArgumentException("obj1或obj2不是Student类的实例！");
    }
}
